package com.beauxi.adatos;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class ADAdapter {

		private DatabaseHelper mDbHelper;
		private SQLiteDatabase mDb;

		private final Context mCtx;
		
		public ADAdapter(Context ctx) {
			this.mCtx = ctx;
		}
		
		private static class DatabaseHelper extends SQLiteOpenHelper {
			DatabaseHelper(Context context){
				super(context, ConstantesAD.DATABASE_NAME, null, ConstantesAD.DATABASE_VERSION);
			}
			
			@Override
			public void onCreate(SQLiteDatabase db){
				db.execSQL(ConstantesAD.DATABASE_CREATE);
			}
			
			@Override
			public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
				
			}
		}
		
		public ADAdapter open() throws android.database.SQLException {
			mDbHelper = new DatabaseHelper(mCtx);
			mDb = mDbHelper.getWritableDatabase();
			return this;
		}
		
		public void close(){
			mDbHelper.close();
		}

		public long insertCromo(String titulo, String descripcion,
				String fechdescarga, String urlweb, String mail, int numveces) {
			ContentValues initialValues = new ContentValues();
			initialValues.put(ConstantesAD.KEY_TITLE, titulo);
			initialValues.put(ConstantesAD.KEY_BODY, descripcion);
			initialValues.put(ConstantesAD.KEY_DATE_DOWN, fechdescarga);
			initialValues.put(ConstantesAD.KEY_URL_WEB, urlweb);
			initialValues.put(ConstantesAD.KEY_MAIL, mail);
			initialValues.put(ConstantesAD.KEY_NUMVECES, numveces);
			
			
			return mDb.insert(ConstantesAD.DATABASE_TABLE, null, initialValues);
		}
		
		public boolean deleteCromo(long rowId){
			return mDb.delete(ConstantesAD.DATABASE_TABLE, ConstantesAD.KEY_ROWID + "=" + rowId, null) > 0;
		}
		
		public Cursor getCromos() {
			return mDb.query(ConstantesAD.DATABASE_TABLE, new String[] {ConstantesAD.KEY_ROWID, ConstantesAD.KEY_TITLE,
					ConstantesAD.KEY_BODY, ConstantesAD.KEY_DATE_DOWN, ConstantesAD.KEY_URL_WEB, ConstantesAD.KEY_MAIL, ConstantesAD.KEY_NUMVECES}, null, null, null, null, null);
		}
		
		public Cursor getCromo(long rowId) throws SQLException {
			Cursor mCursor =
				mDb.query(true, ConstantesAD.DATABASE_TABLE, new String[] {ConstantesAD.KEY_ROWID,
						ConstantesAD.KEY_TITLE, ConstantesAD.KEY_BODY, ConstantesAD.KEY_DATE_DOWN,
						ConstantesAD.KEY_URL_WEB, ConstantesAD.KEY_MAIL, ConstantesAD.KEY_NUMVECES}, ConstantesAD.KEY_ROWID + "=" +
								rowId, null, null, null, null, null);
			if (mCursor != null) {
				mCursor.moveToFirst();
			}
			return mCursor;
		}
		
		public boolean updateCromo(long rowId, String titulo, String descripcion, String fechDescarga, String urlWeb, String mail, int numveces) {
			ContentValues args = new ContentValues();
			args.put(ConstantesAD.KEY_TITLE, titulo);
			args.put(ConstantesAD.KEY_BODY, descripcion);
			args.put(ConstantesAD.KEY_DATE_DOWN, fechDescarga);
			args.put(ConstantesAD.KEY_URL_WEB, urlWeb);
			args.put(ConstantesAD.KEY_MAIL, mail);
			args.put(ConstantesAD.KEY_NUMVECES, numveces);
			return	mDb.update(ConstantesAD.DATABASE_TABLE, args, ConstantesAD.KEY_ROWID + "=" + rowId, null) > 0;
		}
}
